home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / program / mkutil21.zip / MAKEDEFS / WC32.MK < prev   
Text File  |  1995-02-06  |  6KB  |  183 lines

  1. #############################################################################
  2. #
  3. #                       Copyright (C) 1994 SciTech Software
  4. #                               All rights reserved.
  5. #
  6. # Descripton:   Generic DMAKE startup makefile definitions file. Assumes
  7. #               that the SCITECH environment variable has been set to point
  8. #               to where all our stuff is installed. You should not need
  9. #               to change anything in this file.
  10. #
  11. #               Watcom C++ 10.0 32 bit version. Supports Rational's DOS4GW
  12. #               DOS Extender and Phar Lap's TNT DOS Extender.
  13. #
  14. # $Id: wc32.mk 1.1 1995/02/06 12:49:39 kjb release $
  15. #
  16. #############################################################################
  17.  
  18. # Disable warnings for macros redefined here that were given
  19. # on the command line.
  20. __.SILENT       := $(.SILENT)
  21. .SILENT         := yes
  22.  
  23. # File suffix definitions
  24.    L            := .lib   # Libraries
  25.    E            := .exe   # Executables
  26.    O            := .obj   # Objects
  27.    A            := .asm   # Assembler sources
  28.    P            := .cpp   # C++ sources
  29.  
  30. # Import enivornment variables that we use
  31. TMPDIR := $(ROOTDIR)/tmp
  32. .IMPORT .IGNORE : TMPDIR COMSPEC INCLUDE LIB SCITECH DBG OPT SHW BETA
  33. .IMPORT .IGNORE : USE_TNT USE_X32 USE_X32VM USE_PMW FPU
  34.  
  35. # We use the MSDOS shell at all times
  36.    SHELL        := $(COMSPEC)
  37.    GROUPSHELL   := $(SHELL)
  38.    SHELLFLAGS   := $(SWITCHAR)c
  39.    GROUPFLAGS   := $(SHELLFLAGS)
  40.    SHELLMETAS   := *"?<>
  41.    GROUPSUFFIX  := .bat
  42.    DIRSEPSTR    := \\
  43.    DIVFILE       = $(TMPFILE:s,/,\)
  44.  
  45. # Default commands for compiling, assembling linking and archiving
  46.    CC           := wcl386   # C-compiler and flags
  47.    CFLAGS       := -zq -w2 -s -fh -fhq
  48.    AS           := tasm     # Assembler and flags
  49.    ASFLAGS      := /mx /m /D__FLAT__ /i$(SCITECH)\INCLUDE
  50.    LD           := wlink    # Loader and flags
  51.    LDFLAGS       =
  52.    LIB          := wlib     # Librarian
  53.    LIBFLAGS     := -q
  54.  
  55. # Optionally turn on debugging information
  56. .IF $(DBG)
  57.    CFLAGS       += -d2      # Turn on debugging for C compiler
  58.    LIBFLAGS     += -p=128   # Larger page size for libraries with debug info!
  59.    ASFLAGS      += /zi      # Turn on debugging for assembler
  60.    LDFLAGS      += D A      # Turn on debugginf for linker
  61. .END
  62.  
  63. # Optionally turn on optimisations
  64. .IF $(OPT)
  65.    CFLAGS       += -oneatx -5r
  66. .END
  67.  
  68. # Optionally turn on direct i387 FPU instructions optimised for Pentium
  69.  
  70. .IF $(FPU)
  71.    CFLAGS       += -fpi87 -fp5 -DFPU387
  72.    ASFLAGS      += -DFPU387
  73. .END
  74.  
  75. # Optionally compile a shareware version of a product
  76. .IF $(SHW)
  77.    LIB_DIR      := LIBSW
  78.    CFLAGS       += -DSHAREWARE
  79. .ELSE
  80.    LIB_DIR      := LIB
  81. .END
  82.  
  83. # Optionally compile a beta release version of a product
  84. .IF $(BETA)
  85.    CFLAGS       += -DBETA
  86.    ASFLAGS      += -DBETA
  87. .END
  88.  
  89. # Use a larger stack during linking if requested
  90.  
  91. .IF $(STKSIZE)
  92.     LDFLAGS     += OP STACK=$(STKSIZE)
  93. .ENDIF
  94.  
  95. .IF $(USE_TNT)                  # Use Phar Lap's TNT DOS Extender
  96.    LDFLAGS      += SYS NT OP STUB=GOTNT.EXE
  97.    DX_CFLAGS    += -DTNT
  98.    DX_ASFLAGS   += -DTNT
  99. .ELIF $(USE_X32VM)              # Use FlashTek X-32VM DOS extender
  100.    LDFLAGS      += SYS X32RV
  101.    DX_CFLAGS    += -DX32VM
  102.    DX_ASFLAGS   += -DX32VM
  103. .ELIF $(USE_X32)                # Use FlashTek X-32 DOS extender
  104.    LDFLAGS      += SYS X32R
  105.    DX_CFLAGS    += -DX32VM
  106.    DX_ASFLAGS   += -DX32VM
  107. .ELIF $(USE_WIN32)              # Build Windows 32 bit DPMI app
  108.    DX_CFLAGS    += -DWINDPMI32
  109.    DX_ASFLAGS   += -DWINDPMI32
  110. .ELSE                           # Use DOS4GW
  111.    USE_DOS4GW   := 1
  112.    DX_CFLAGS    += -DDOS4GW
  113.    DX_ASFLAGS   += -DDOS4GW
  114. .END
  115.  
  116. # Place to look for PMODE library files
  117.  
  118. .IF $(MK_PMODE)
  119. .ELIF $(USE_TNT)
  120. PMLIB           := tnt\pmode.lib,
  121. .ELIF $(USE_X32)
  122. PMLIB           := x32\pmode.lib,
  123. .ELIF $(USE_WIN32)
  124. PMLIB           := win32\pmode.lib,
  125. .ELSE
  126. PMLIB           := dos4gw\pmode.lib,
  127. .END
  128.  
  129. # Define where to install library files
  130.    LIB_BASE     := $(SCITECH)\$(LIB_DIR)\WC32
  131.    LIB_DEST     := $(LIB_BASE)
  132.  
  133. # Definition of $(MAKE) macro for recursive makes.
  134.    MAKE = $(MAKECMD) $(MFLAGS)
  135.  
  136. # Macro to install a library file
  137.    INSTALL      := cp
  138.  
  139. # Implicit generation rules for making object files
  140.    %$O: %.c ; +$(CC) $(CFLAGS) -c $<
  141.    %$O: %$P ; +$(CC) $(CFLAGS) -c $<
  142.    %$O: %$A ; +$(AS) $(ASFLAGS) $(<:s,/,\)
  143.  
  144. # Implicit rule for building a library file using response file
  145.    %$L: ; +$(LIB) $(LIBFLAGS) $@ @$(mktmp,$*.rsp -+$(?:t"\n-+")\n)
  146.  
  147. # Implicit rule for building an executable file using response file
  148. .IF $(USE_TNT)
  149.    %$E: ; +$(LD) $(LDFLAGS) @$(mktmp,$*.lnk OP quiet\nN $@\nF $(&:t",":s/\/\\)\nLIBR dosx32.lib,$(PMLIB)$(EXELIBS:t","))
  150. .ELIF $(USE_X32)
  151.    %$E: ;
  152. @[
  153.     @trimlib $(mktmp OP quiet\nN $@\nF $(&:t",":s/\/\\)\nLIBR $(PMLIB)$(EXELIBS:t",")) $*.lnk
  154.     $(LD) $(LDFLAGS) @$*.lnk
  155.     x32fix $@
  156.     @rm $*.lnk
  157. ]
  158. .ELIF $(USE_PMW)
  159.    %$E: ;
  160. @[
  161.     @trimlib $(mktmp OP quiet\nN $@\nF $(&:t",":s/\/\\)\nLIBR $(PMLIB)$(EXELIBS:t",")) $*.lnk
  162.     $(LD) $(LDFLAGS) @$*.lnk system pmodew
  163.     @rm $*.lnk
  164. ]
  165. .ELSE
  166.    %$E: ;
  167. @[
  168.     @trimlib $(mktmp OP quiet\nN $@\nF $(&:t",":s/\/\\)\nLIBR $(PMLIB)$(EXELIBS:t",")) $*.lnk
  169.     $(LD) $(LDFLAGS) @$*.lnk
  170.     @rm $*.lnk
  171. ]
  172. .ENDIF
  173.  
  174. # DMAKE uses this recipe to remove intermediate targets
  175. .REMOVE :; $(RM) -f $<
  176.  
  177. # Turn warnings back to previous setting.
  178. .SILENT := $(__.SILENT)
  179.  
  180. # We dont use TABS in our makefiles
  181. .NOTABS         := yes
  182.  
  183.